package com.xnyzc.lhy.mis.feign.didi;

import com.xnyzc.lhy.common.entity.DiDiRv;
import com.xnyzc.lhy.mis.entity.param.worksheet.didi.*;
import com.xnyzc.lhy.mis.entity.worksheet.OtherOpenPidParam;
import com.xnyzc.lhy.mis.feign.fallback.amap.AmapServiceFallback;
import com.xnyzc.lhy.mis.feign.fallback.didi.CustomerServiceOperationServiceFallback;
import io.swagger.annotations.ApiParam;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

@FeignClient(name = "${feign.applicationName.didi}", fallback = CustomerServiceOperationServiceFallback.class)
public interface CustomerServiceOperationService {
    /**
     * 客服取消订单
     * @param cancelOrderParam
     * @return
     */
    @PostMapping("oa/didi/operation/getCancelOrder")
    DiDiRv getCancelOrder(@RequestBody CloseOrderParam cancelOrderParam);

    /**
     * 客服关单
     * @param closeOrderParam
     * @return
     */
    @PostMapping("oa/didi/operation/getCloseOrder")
    DiDiRv getCloseOrder(@RequestBody CloseOrderParam closeOrderParam);

    /**
     * 改价
     * @param changePriceParam
     * @return
     */
    @PostMapping("oa/didi/operation/getChangePrice")
    DiDiRv getChangePrice(@RequestBody ChangePriceParam changePriceParam);

    /**
     * 免单
     * @param freeChargeParam
     * @return
     */
    @PostMapping("oa/didi/operation/getFreeCharge")
    DiDiRv getFreeCharge(@RequestBody FreeChargeParam freeChargeParam);

    /**
     * 退款接口
     * @param billRefundParam
     * @return
     */
    @PostMapping("oa/didi/operation/getBillRefund")
    DiDiRv getBillRefund(@RequestBody BillRefundParam billRefundParam);

    /**
     * 新建工单
     *
     * @param createWorkOrderParam
     * @return
     */
    @PostMapping("oa/didi/operation/getCreateWorkOrder")
    DiDiRv getCreateWorkOrder(@RequestBody CreateWorkOrderParam createWorkOrderParam);

    /**
     * 查询乘客ID
     * @param otherOpenPidParam
     * @return
     */
    @PostMapping("oa/didi/other/getOpenPid")
    DiDiRv getOpenPid(@RequestBody OtherOpenPidParam otherOpenPidParam);
}
